import { IFeidaoAiBrowserComponent } from '@dfeidao/atom-web/interfaces';
import get from '@dfeidao/atom-web/local/get';
import fire from '@dfeidao/atom-web/msg/fire';
import nodejs from '@dfeidao/atom-web/msg/nodejs';
import set_node_cls from '@dfeidao/atom-web/ui/set-node-cls';
export default async function a016(fd: IFeidaoAiBrowserComponent) {
	// todo 新增保存
	// 设备编号：编码规则生成

	// 设备类型编号、设备类型名称：“设备类型”下拉框选择
	const equip = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="equip_type_name"]').value.split(",");
	if (equip.length === 0) {
		alert("请填写完整信息！");
		return;
	}
	const equip_type_name = equip[0];
	const equip_type_no = equip[1];
	// 设备设施编号：“设备设施”输入框的值
	const equip_internal_no = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="equip_internal_no"]').value;
	if (equip_internal_no.length === 0) {
		alert("请填写完整信息！");
		return;
	}
	// 设备名称：“设备名称”下拉框选中的“设备种类名称”
	const equip_name = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="equipment_kind_name"]').value;
	if (equip_name.length === 0) {
		alert("请填写完整信息！");
		return;
	}
	// 设备描述：“设备描述”输入框的值
	const equip_description = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="equip_description"]').value;
	// 设备状态：“设备状态”下拉框选中的值
	const equipment_state = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="optional_value"]').value;
	// 固定资产编号、固定资产类型：“固定资产类型”下拉框选择
	const optional = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="fixed_assets_type"]').value.split(",");
	if (optional.length === 0) {
		alert("请填写完整信息！");
		return;
	}
	const fixed_assets_type = optional[0];
	const fixed_assets_no = optional[1];
	// 原设备设施编号：“原设备设施编号”输入框的值
	const former_equip_no = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="Former_equip_no"]').value;
	// 转固日期：当前服务器时间
	const nowtime = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="transfer_time"]').value;

	const ars = nowtime.split("-");// 分割成数组
	const das = new Date(Date.UTC(Number(ars[0]), Number(ars[1]) - 1, Number(ars[2])));

	const transfer_time = das.getTime();// 格式时间转换为时间戳

	if (nowtime.length === 0) {
		alert("请填写完整信息！");
		return;
	}
	// 购置价格：“购置价格”输入框的值
	const transfer_price = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="transfer_price"]').value;
	if (transfer_price.length === 0) {
		alert("请填写完整信息！");
		return;
	}
	// 购置日期：“购置日期”输入框的值
	const transfer = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="transfer_date"]').value;
	const arr = transfer.split("-");// 分割成数组
	const datum = new Date(Date.UTC(Number(arr[0]), Number(arr[1]) - 1, Number(arr[2])));

	const transfer_date = datum.getTime();// 格式时间转换为时间戳

	// 制造商：“制造商”输入框的值
	const manufacturer = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="manufacturer"]').value;
	// 制造商国家：“制造商国家”输入框的值
	const manu_country = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="manu_country"]').value;
	// 制造年/月：“制造年/月”输入框的值
	const manu = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="manu_years"]').value;

	const arrs = manu.split("-");// 分割成数组
	const datums = new Date(Date.UTC(Number(arrs[0]), Number(arrs[1]) - 1, Number(arrs[2])));

	const manu_years = datums.getTime();// 格式时间转换为时间戳

	// 型号：“型号”输入框的值
	const equip_model = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="equip_model"]').value;
	// 制造商零件号：“制造商零件号”输入框的值
	const manu_element_no = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="manu_element_no"]').value;
	// 系列编号：“系列号”输入框的值
	const series_no = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="series_no"]').value;
	// 设备坐标：地图返回的经纬度数据
	const geom = fd.data.node.querySelector<HTMLSpanElement>('[data-zzs="geom"]').value;

	const res = await nodejs<{
		rs: { code: number, result: string }
		, result: string
	}>('device-management/zj-000001/s013', {
		fitle: {
			equip_type_name,
			equip_type_no,
			equip_internal_no,
			equip_name,
			equip_description,
			equipment_state,
			fixed_assets_type,
			fixed_assets_no,
			former_equip_no,
			transfer_time,
			transfer_price,
			transfer_date,
			manufacturer,
			manu_country,
			manu_years,
			equip_model,
			manu_element_no,
			series_no,
			geom
		}
	});
	if (res.rs.code === 1) {
		alert("添加成功！");

		// 设备编号：（1）中生成的“设备编号”
		const equip_no = res.result;
		// 公司代码、 公司名称：“所属公司”下拉框选择
		const company = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="company_code"]').value.split(",");
		const companyname = company[0];
		const company_code = company[1];
		// 计划工厂编号、计划工厂：“计划工厂”下拉框选择
		const plan = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="plan_factory_name"]').value.split(",");
		const plan_factory_name = plan[0];
		const plan_factory_no = plan[1];
		// 维护工厂：“维护工厂”下拉框选择
		const maintain_factory_name = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="plan_factory"]').value;
		// 所在区域：“所在区域”下拉框选择的值
		const stay_area = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="stay_area"]').value;
		// 安全等级标识：“安全等级标识”下拉框选择的值
		const security_level_ident = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="security_level_ident"]').value;
		if (security_level_ident.length === 0) {
			alert("请填写完整信息！");
			return;
		}
		// 负责人：选择“负责人”的“员工编号”  负责人编号：选择“负责人”的“员工名称”
		const principal = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="principal_number"]').value.split(",");
		const principal_name = principal[0];
		const principal_number = principal[1];
		// 计划人员组编号：选择人员组下拉框选择的“部门编号” 计划人员组名称：选择人员组下拉框选择的“部门名称”
		const planner = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="planner"]').value.split(",");
		const planner_team_name = planner[0];
		const planner_team_no = planner[1];
		// 计划员编号：选择人员组下拉框选择的“员工编号” 计划员名称：选择人员组下拉框选择的“员工名称”
		const pla = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="pla"]').value.split(",");
		alert(pla);
		const planner_name = pla[0];
		const planner_no = pla[1];
		const rs = await nodejs<{ code: number, result: string }>('device-management/zj-000001/s014', {
			fitle: {
				equip_no,
				companyname,
				company_code,
				plan_factory_name,
				plan_factory_no,
				maintain_factory_name,
				stay_area,
				security_level_ident,
				principal_name,
				principal_number,
				planner_team_name,
				planner_team_no,
				planner_name,
				planner_no
			}
		});
		if (rs.code === 1) {
			alert("1添加成功！");
		} else {
			alert("1失败！");
		}

		// 设备编号：（1）中生成的“设备编号”

		// 保修年限：“保修年限”输入框的值
		const warranty_period = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="warranty_period"]').value;
		// 保修开始日期：”保修开始日期“输入框的值
		const startsj = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="warranty_start_date"]').value;
		const ar1 = startsj.split("-");// 分割成数组
		const datum1 = new Date(Date.UTC(Number(ar1[0]), Number(ar1[1]) - 1, Number(ar1[2])));

		const warranty_start_date = datum1.getTime();// 格式时间转换为时间戳
		// 保修结束日期：”保修结束日期“输入框的值
		const endsj = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="warranty_end_date"]').value;

		const ar2 = endsj.split("-");// 分割成数组
		const datum2 = new Date(Date.UTC(Number(ar2[0]), Number(ar2[1]) - 1, Number(ar2[2])));

		const warranty_end_date = datum2.getTime();// 格式时间转换为时间戳

		// 保修负责部门编号、保修负责部门：保修负责部门下拉框选择
		const warranty = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="warranty"]').value.split(",");
		const warranty_depart = warranty[0];
		const warranty_depart_no = warranty[1];
		// 保修负责人编号、保修负责人：保修负责人下拉框选择
		const p1 = fd.data.node.querySelector<HTMLSelectElement>('[data-zzs="planner"]').value.split(",");
		const principalname = p1[0];
		const principalnumber = p1[1];
		const re = await nodejs<{ code: number, result: string }>('device-management/zj-000001/s015', {
			fitle: {
				equip_no,
				warranty_period,
				warranty_start_date,
				warranty_end_date,
				warranty_depart,
				warranty_depart_no,
				principalname,
				principalnumber
			}
		});
		if (re.code === 1) {
			alert("2添加成功！");
		} else {
			alert("2失败！");
		}

		// 		向<安全与稳定性属性>保存一条数据，字段：	设备编号：（1）中生成的“设备编号”

		// 		安全许可：“安全许可”选择框的值
		const as = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="as"]').getAttribute("checked");
		let security_license = '';
		if (!as) {
			security_license = '是';
		} else {
			security_license = '否';
		}
		// 		工作程序许可：“工作程序许可”选择框的值
		const xs = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="xs"]').getAttribute("checked");
		let work_program_license = '';
		if (!xs) {
			work_program_license = '是';
		} else {
			work_program_license = '否';
		}
		const es = await nodejs<{ code: number, result: string }>('device-management/zj-000001/s016', {
			fitle: {
				equip_no,
				security_license,
				work_program_license
			}
		});
		if (es.code === 1) {
			alert("3添加成功！");
		} else {
			alert("3失败！");
		}





		//    向<节能减排属性>表保存一条数据，字段：设备编号：（1）中生成的“设备编号”

		// 		COP评价参数：“COP评价参数”输入框的值
		const cop_parameter = fd.data.node.querySelector<HTMLInputElement>('[data-zzs="cop_parameter"]').value;

		const se = await nodejs<{ code: number, result: string }>('device-management/zj-000001/s017', {
			fitle: {
				equip_no,
				cop_parameter
			}
		});
		if (se.code === 1) {
			alert("4添加成功！");
		} else {
			alert("4失败！");
		}




		//    向<隐患源>表保存一条或者多条数据，字段：

		// 		设备编号：（1）中生成的“设备编号”

		// 		隐患源编号：选择隐患源的“隐患源编号”
		const s = get(fd, 's') as string;
		const a = s.split(",");

		for (let i = 0; i < a.length; i++) {
			const hidden_source = a[i];
			const aa = await nodejs<{ code: number, result: string }>('device-management/zj-000001/s018', {
				fitle: {
					equip_no,
					hidden_source
				}
			});
			if (aa.code === 1) {
			} else {
				alert("失败！");
				return;
			}
		}


		// 向<设备自定义属性>表保存一条或者多条数据，字段：设备编号 设备编号：（1）中生成的“设备编号”

		// 		属性编号，属性名称：选择属性的“属性名称”	属性值：选择属性可选值的“属性可选值”
		const ss = get(fd, 's') as Array<{}>;
		const s0 = get(fd, 's') as string;
		const s1 = s0.split(",");
		for (let i = 0; i < s1.length; i++) {
			const c = ss[i] as { _id: string, productid: string, attr_no: string, attr_name: string, is_stop: number, attr_value: string };
			const attr_no = c.attr_no;
			const attr_name = c.attr_name;
			const attr_value = c.attr_value;
			const aa = await nodejs<{ code: number, result: string }>('device-management/zj-000001/s019', {
				fitle: {
					equip_no,
					attr_no,
					attr_name,
					attr_value
				}
			});
			if (aa.code === 1) {
			} else {
				alert("自定义失败！");
				return;
			}
		}
		const sr = fd.data.node.querySelector<HTMLDivElement>('[data-zzs="sr"]');
		set_node_cls(sr, 'display-n', true);
		const nr = fd.data.node.querySelector<HTMLDivElement>('[data-zzs="nr"]');
		set_node_cls(nr, 'display-n', false);

		fire('zj-000001', 'a021', equip_no);
	} else {
		alert("添加失败！");
	}



}
